![「IAM Access Analyzer を活用して最小権限を目指そう」というタイトルで Security-JAWS に登壇しました](https://devio2023-media.developers.io/wp-content/uploads/2019/05/jaws-ug-logo-1200x630.png)
「IAM Access Analyzer を活用して最小権限を目指そう」というタイトルで Security-JAWS に登壇しました
コンバンハ、千葉(幸)です。
2021/05/19に開催された Security-JAWS 【第21回】 勉強会 に登壇しました。
登壇内容のサマリと、当日資料の共有を行います。
自己紹介
好きな AWS のアクションは sts:AssumeRole
です。
IAM の最小権限とは
どこに記載がある?
IAM のセキュリティのベストプラクティス
IAM でのセキュリティのベストプラクティス - AWS Identity and Access Management
- アクセスレベルのグループ化の把握
- ポリシーの検証
- アクセスアクティビティに基づいてポリシーを生成する
- 最終アクセス情報の利用
- AWS CloudTrail でのアカウントイベントの確認
太字になっている部分を今回の登壇の後半で取り上げます。
AWS Well-Architected フレームワーク セキュリティの柱
Permissions Management - Security Pillar
最小権限が守られていないとどうなる?
- 操作ミスによる意図しない変更が行われる
- 不正アクセスによる被害が拡大する
- 内部犯行による被害が拡大する
こういった事象を防ぐために、「権限は狭く始めて必要に応じて追加」が理想です。あくまで理想なので、「ゆるく始めて徐々に絞る」というのもよくあるアプローチです。
どこで最小権限を実現するか
ポリシーの種類
IAM でのポリシーとアクセス許可 - AWS Identity and Access Management
ポリシータイプは以下の6つがあります。
- アイデンティティベースポリシー
- リソースベースポリシー
- アクセス許可の境界(Permissions boundary)
- Organizations SCP(サービスコントロールポリシー)
- アクセスコントロールリスト(ACL)
- セッションポリシー
ACL ってポリシーなの?とつねづね思っています。
JSON ポリシーの要素
IAM JSON ポリシーの要素のリファレンス - AWS Identity and Access Management
最小権限を目指す上で意識すべき要素として以下があります。
- Principal(誰が)
- Action(何を)
- Resouce(何に対して)
- Conditon(どんな場合に)
どこで最小権限を実現するか
アイデンティティベースポリシーで Action を制限するだけが最小権限の実装ではありません。様々なタイプのポリシーで様々な要素を使用して制限を行います。
IAM Access Analyzer とは
IAM Access Analyzer とは何か
かつては「リソースベースポリシーの Principal を見てくれるもの」でしたが、2021 年に入ってから様子の違う機能が追加されました。
ざっくり整理
- リソースベースポリシーに対する分析にはリージョナルリソースである「アナライザー」の作成が必要
- 「ポリシーの検証」にはリソースもロールも要らない
- 「ポリシーの生成」にはロールだけ要る
IAM アクセスアドバイザーと何が違うか
比較した表が以下です。
アドバイザーは、以下を実現する機能の名称です。
- アイデンティティベースポリシーを基準とした「アクセス可能なサービス」の表示
- CloudTrail をベースとした「アクセス履歴」の表示
最小権限を目指すための機能
ポリシーの検証
- IAM Access Analyzer による機能
- マネジメントコンソールではアイデンティティベースポリシーのみ対応
- 以下のカテゴリでチェック
- セキュリティ
- エラー
- 警告
- 提案
「最小権限を目指す」という観点ではそこまで強いものではありません。詳細は以下を確認してください。
ポリシーの生成
思わず冗長構成でブログを書くほどの激アツアップデートです。
注意点はいくつかあります。
詳細は以下を確認してください。
最終アクセス情報の利用
- IAM アクセスアドバイザーによる機能
- 以下の AWS サービスに対してはアクションレベルで確認可能
- Amazon S3
- Amazon EC2
- AWS IAM
- AWS Lambda
IAM Access Analyzer によるポリシーの生成と似ていますが、できることが少なく、そのぶんお手軽に使えます。
AWS CLI を用いると楽しいです。以下をあわせてご参照ください。
まとめ
- 「最小権限」はいろんなポリシーのいろんな要素を使って実装する
- IAM Access Analyzer(とアドバイザー)はその一部をチューニングするのに便利
- 「これさえやっておけばOK」はないので、継続して頭を悩ませましょう
「銀の弾丸」というワードを使わずに済ませようと思っていましたが、思わず口からこぼれ出ていました。銀の弾丸はありません。
資料
終わりに
タイムテーブルを見たときに、先行発表者である大竹さんと内容が被っているのでは……、と生きた心地がしませんでした。
うまい具合に振っていただいたので、無事 致命傷で済みました。ありがとうございました。
当日のイベント全体に対するレポートは以下に記載されています。あわせてご参照ください。
以上、千葉(幸)がお送りしました。